﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using TechControl.BD;
using System.Collections;

namespace TechControl.Presentation
{
    public partial class frm_cadModelo : frm_default
    {
        frm_cadEquipamento cadEquipemento = new frm_cadEquipamento(null);

        public frm_cadModelo(frm_cadEquipamento sendedCadEquip)
        {
            InitializeComponent();
            cadEquipemento = sendedCadEquip;
        }

        //volta para o form que o chamou.
        private void bt_cancelar_Click(object sender, EventArgs e)
        {
            this.closeForm();
        }

        //carrega código do ultimo registro feito e popula combo.
        private void frm_cadModelo_Load(object sender, EventArgs e)
        {
            load();
        }

        //método que carrega ultimo código de registro e popula combo.
        private void load()
        {
            txt_codModelo.Text = "";
            cbo_marca.Items.Clear();
            txt_modelo.Text = "";
            txt_descricao.Text = "";
            txt_modelo.Focus();


            Int64 result = ModeloDB.getInstance().getLastCodModelo();
            
            result++;
            txt_codModelo.Text = result.ToString();

            ArrayList resultado = MarcaDB.getInstance().selectAllMarcas();
            for (int i = 0; i < resultado.Count; i++)
            {
                cbo_marca.Items.Add(resultado[i].ToString());
            }
        }

        //chama o método que vrifica os campos obrigatórios e salva.
        private void bt_salvar_Click(object sender, EventArgs e)
        {
            if (verificaCampos())
            {
                Int64 idModelo = Int64.Parse(txt_codModelo.Text);
                string[] separa = cbo_marca.SelectedItem.ToString().Split('='); 
                Int64 idMarca =  Int64.Parse(separa[0]);
                string modelo = txt_modelo.Text;
                string descricao = txt_descricao.Text;

                if (cadEquipemento == null)
                {
                    if (ModeloDB.getInstance().insertNewModelo(idModelo, idMarca, modelo, descricao))
                    {
                        var resultado = MessageBox.Show("Registro inserido com sucesso, Deseja inserir novo item?", "Novo Modelo", MessageBoxButtons.YesNo,
                            MessageBoxIcon.Question, MessageBoxDefaultButton.Button1);
                        if (resultado == DialogResult.Yes)
                        {
                            load();
                        }
                        else
                        {
                            this.closeForm();
                        }
                    }
                }
                else
                {
                    if (ModeloDB.getInstance().insertNewModelo(idModelo, idMarca, modelo, descricao))
                    {
                        var resultado = MessageBox.Show("Registro inserido com sucesso, Deseja inserir novo item?", "Novo Modelo", MessageBoxButtons.YesNo,
                            MessageBoxIcon.Question, MessageBoxDefaultButton.Button1);
                        if (resultado == DialogResult.Yes)
                        {
                            load();
                        }
                        else
                        {
                            cadEquipemento.recarregaModelo(idModelo.ToString() + "= " + modelo, descricao);
                            this.closeForm();
                        }
                    }

                }
            }
        }

        //verifica campos obrigatórios.
        private bool verificaCampos()
        {
            bool result = true;

            if (cbo_marca.SelectedItem == null)
            {
                result = false;
                MessageBox.Show("Selecione uma Marca para continuar!", "Marca");
                cbo_marca.Focus();
            }

            else if (txt_codModelo.Text == "")
            {
                MessageBox.Show("Insira uma Modelo para continuar!", "Modelo");
                txt_modelo.Focus();
            }

            else if (txt_descricao.Text == "")
            {
                MessageBox.Show("Insira uma Descrição para continuar!", "Descrição");
                txt_descricao.Focus();
            }

            return result;
        }
    }
}
